import { getEvnBaseUrl } from './index'

export function padZero(num: number | string, length = 2) {
  return num.toString().padStart(length, '0')
}

export function percentFormat(part, total) {
  // 转换字符串为数字，如果已经是数字则不做改变
  part = parseFloat(part)
  total = parseFloat(total)

  // 检查输入是否合法
  if (isNaN(part) || isNaN(total) || total === 0) {
    return 'Invalid input' // 如果输入无效或总数为零，返回错误信息
  }

  // 计算百分比
  const percentage = Math.floor((part / total) * 100)

  // 返回百分比（保留两位小数）
  return percentage.toFixed(2) + '%'
}

// 获取对象深层属性
export function getObjDeepProps(obj: Record<string, any>, name: string): any {
  const keys = name.split('.')
  try {
    let target: any = obj
    for (let i = 0; i < keys.length; i++) {
      // target = target[keys[i]];
      if (target.hasOwnProperty(keys[i])) {
        target = target[keys[i]]
      } else {
        target[keys[i]] = {}
      }
    }

    return target
  } catch (err) {
    // console.log(err);
    return '--'
  }
}

export function isEmpty(obj: Record<string, any>) {
  return Object.keys(obj).length === 0
}

// 过滤媒体标签
export function filterMediaTag(str: string) {
  // 移除特定的媒体标签及其内容（如 <img>, <video>, <audio>）
  return str.replace(/<img[^>]*>|<video[^>]*>|<audio[^>]*>/gi, '')
}

// 富文本 图片处理
export function imgDeal(value: string) {
  if (!value) {
    return ''
  }
  return value
    .replace(/<img/g, "<img class='auto-img' style='display:block;width:100%;height:auto;'")
    .replace(/<video/g, "<video class='auto-video' style='display:block;width:100%;'")
}

export function formatUrl(url: string): string {
  if (!url) return ''
  return url.startsWith('http') ? url : `${getEvnBaseUrl()}/${url}`
}
